import request from '@/utils/request'

// ========================= 商品分类 =============================
// 获取商品分类信息tree
export function tree() {
    return request({
      url: '/product/category/list/tree',
      method: 'get'
    })
  }

// 删除分类项
export function delMenus(menusId){
  return request({
    url: '/product/category/delete',
    method: 'post',
    data: menusId
  })
}

// 新增分类项
export function addMenus(menu){
  return request({
    url: '/product/category/save',
    method: 'post',
    data: menu
  })
}

// =================================================================

// ============================ 品牌 ===================================

// 获取品牌列表
export function brandList(page){
  return request({
      url: '/product/brand/list',
      method: 'get',
      params: page
  })
}

// 获取品牌列表
export function brandInfo(id){
  return request({
      url: `/product/brand/info/${id}`,
      method: 'get',
  })
}

// 保存品牌
export function saveBrand(data){
  return request({
    url: '/product/brand/save',
    method: 'post',
    data: data
  })
}

// 修改品牌
export function updateBrand(data){
  return request({
    url: '/product/brand/update',
    method: 'post',
    data: data
  })
}

// 删除品牌
export function deleteBrand(data){
  return request({
    url: '/product/brand/delete',
    method: 'post',
    data: data
  })
}

// ======================================================================

// ========================== 属性分组 ==================================
export function attrGroupList(catId, param){
  return request({
    url: `/product/attrgroup/list/${catId}`,
    method: 'get',
    params: param
  })
}

// 获取商品分组详细信息
export function attrGroupInfo(id){
  return request({
    url: `/product/attrgroup/info/${id}`,
    method: 'get'
  })
}

// 新增 or 修改属性分组
export function addOrUpdateAttrGroup(data){
  return request({
    url: `/product/attrgroup/${data.attrGroupId?"update":"save"}`,
    method: 'post',
    data: data
  })
}
// ====================================================================

// ========================= 品牌分类关联 ================================

// 获取品牌分类关联
export function getCategorybrandrelation(brandId){
  return request({
    url: '/product/categorybrandrelation/catelog/list',
    method: 'get',
    params: {
      brandId: brandId
    }
  })
}

// 保存品牌分类关联
export function saveCategorybrandrelation(data){
  return request({
    url: '/product/categorybrandrelation/save',
    method: 'post',
    data: data
  })
}

// 删除品牌分类关联
export function deletecategorybrandrelation(ids){
  return request({
    url: '/product/categorybrandrelation/delete',
    method: 'post',
    data: ids
  })
}
// ===============================================================


// 新增/修改参数规格
export function saveOrUpdateAttr(saveOrUpdate, data){
  return request({
    url: `/product/attr/${saveOrUpdate === "save" ? "save" : "update"}`,
    method: 'post',
    data: data
  })
}

// 查询单个商品属性信息
export function attrInfo(attrId){
  return request({
    url: `/product/attr/info/${attrId}`,
    method: 'get'
  })
}

// 查询属性信息列表【基本属性和销售属性】
export function getAttrList(type, catId, params = {page: 1, limit: 99}){
  return request({
    url: `/product/attr/${type}/list/${catId}`,
    method: 'get',
    params: params
  })
}

// =================================== 分组关联 属性 ============================================

// 查询分组关联的属性
export function getAttrGroupRelation(attrGroupId){
  return request({
    url: `/product/attrgroup/${attrGroupId}/attr/relation`,
    method: 'get'
  })
}

// 查询分组未关联的属性
export function getAttrGroupNoRelation(attrGroupId, params){
  return request({
    url: `/product/attrgroup/${attrGroupId}/attr/norelation`,
    method: 'get',
    params: params
  })
}

// 新建分组关联关系
export function saveAttrGroupRelation(data){
  return request({
    url: '/product/attrgroup/attr/relation',
    method: 'post',
    data: data
  });
}

// 移除分组关联的属性
export function deleteAttrGroupRelation(datas){
  return request({
    url: '/product/attrgroup/attr/relation/delete',
    method: 'post',
    data: datas
  })
}

// ===========================================================================================


// ============================ 分类/品牌关系 ================================ 
// 查询某一分类下的品牌
export function getBrandsListByCatId(catlogId){
  return request({
    url: '/product/categorybrandrelation/brands/list',
    method: 'get',
    params: {catlogId}
  });
}



// =========================================================================


// =============================== 商品 spu ==============================
// 查询分类下的分组及分组关联的属性
export function getGroupAndGroupAttr(catelogId){
  return request({
    url: `/product/attrgroup/${catelogId}/withattr`,
    method: 'get'
  });
}

// 商品分类下的所有销售属性
 // todo  @Deprecated
export function getSaleAttrByCatelogId(catelogId, params = {page: 1, limit: 99}){
  return request({
    url: `/product/attr/sale/list/${catelogId}`,
    method: 'get',
    params: params
  });
}

// 保存商品信息
export function saveSpu(data){
  return request({
    url: '/product/spuinfo/save',
    method: 'post',
    data: data
  });
}

// 获取商品信息集合
export function getSpuInfoList(params){
  return request({
    url: '/product/spuinfo/list',
    method: 'get',
    params: params
  });
}

// 商品上架
export function upProduct(id){
  return request({
    url: `/product/spuinfo/${id}/up`,
    method: 'post'
  });
}

// =========================================================================

// =============================== 商品 sku ==============================
// 查询商品sku信息
export function getSkuInfoList(params){
  return request({
    url: '/product/skuinfo/list',
    method: 'get',
    params: params
  });
}

// =========================================================================

// 修改属性
export function updateAttr(spuId, data){
  return request({
    url: `/product/attr/update/${spuId}`,
    method: 'post',
    data: data
  });
}

// 查询商品规格属性
export function getAttrListForSpu(spuId){
  return request({
    url: `/product/attr/base/listforspu/${spuId}`,
    method: 'get'
  });
}